-
activemq 使用
activemq 消息确认的模式1.Session.AUTO_ACKNOWLEDGE : 当消费端从consumer.receive() or consumer.setMessageListener(Listener) 的方式, 客户端是自动发送Ack标记的2.Session.CLIENT_ACKNOWLEDGE: 需要消费端通过 message.achknownledge() 方式进行消息的确认, 需要结合Session session = connection.createSess...…
-
redis分布式锁
redis 分布式锁原理: 采用jedis 实现的方法jedis.set(String key, String value, String nxxx, String expx, int time)第一个为key,我们使用key来当锁,因为key是唯一的。第二个为value,我们传的是requestId,很多童鞋可能不明白,有key作为锁不就够了吗,为什么还要用到value?原因就是我们在上面讲到可靠性时,分布式锁要满足第四个条件解铃还须系铃人,通过给value赋值为requestId,我们...…
-
dubbo xml config
dubbo 采用xml config目的: 采用xml配置dubbo项目项目分为:dubbo-api,dubbo-consumer,dubbo-providerdubbo api<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...…
-
CompletableFuture使用
CompletableFuture介绍CompletableFuture 出自jdk1.8 为了解决线程异步调用, 以及线程的回调, 异步执行完毕后获取结果CompletableFuture使用该类的方法也比较多, 此处仅仅挑选几个 测试使用1.thenCompose 返回的是一个 CompletableFuture2.thenApply 调用 supplyAsync 的结果 继续做一些事情 有返回结果3.thenAcceptAsync 接收 supplyAsync返回...…
-
zookeeper使用
zookeeper 的个人理解zookeeper是一个比较好的开发软件, 可以用于dubbo,hadoop...等项目的配置配置中心,服务的注册中心。 那么为什么zk可以作为服务的注册中心呢?zk的特点:zk目录结构类似一个倒树形结构, 树木上面可以建立分支, 每个分支可以成为node 节点(自己取名称)个人感觉一个非常重要的地方是的 zk 节点的建立 修改 删除 都是原子操作的 这个非常重要我们不可能同时建立同名的树节点,这样的话每个节点都是唯一的, 无论是对注册 还是 配置 来说...…
-
Spring cloud sleuth
sleuth随着业务的发展, 系统的规模也会变大, 各个服务之间的调用变得更加的复杂。 通常一个由客户端发起的请求会交给好一个服务进行处理返回一个最终的结果, 那么后台的服务是如何调用的呢, 是怎么样的依赖关系, sleuth为服务的访问路径追踪提供了一个很好的机制。整合zipkin构成部分 collector, storage, restful API , web UI 启动zipkin-server : java -jar zipkin-server-2.10.1-exec.j...…
-
Spring Cloud Bus
消息总线通过一个消息代理的中间件,在程序之间起到信息调度并最小化程序之间的依赖的作用, 是的应用程序可以高效的解耦通信过程。消息的中间件来接收和分发消息, 并根据设定好的消息处理流来转发给正确的程序。 它包括独立的通信和消息传输协议, 能够实现组织内部和组织之间的通信。 设计代理的目的及时为了能够从应用程序中传入消息, 并执行一些特定的操作 消息路由到一个或者多个地方 消息转换为其他的表现形式 执行消息的聚集,消息的分解, 并将消息发到目的地, 然后重新组合, 响应给消息用户 调用...…
-
SpringCloud config 分布式配置中心
配置用心配置中心为服务提供一个不同配置管理的组件。 采用git来存储配置,然后通过服务里面配置git地址,用户名,密码来获取远程git仓库地址的配置。 结合spring boot的端点可以进行配置的刷新。cloud config server<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactI...…
-
Netty第一篇
netty 入门Netty is a high performance IO toolkit for Java. Netty is open source, so you can use it freely, and even contribute to it if you want to. netty 是一个高效的java io 工具。 netty是开源的,你可以免费使用甚至是为其贡献源代码。 netty 支持http , https,websocket,tcp,udp,vm pipe(...…
-
antV F2 画图(移动端)
雷达图<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <meta name="chart-name" content="基金评估"> <ti...…
-
zuul使用
zuul 使用采用路由可以将请求引导向不同的服务提供方, 例如:http://localhost:8769/api-a/hi?name=jav&token=java 请求的是 service-ribbon 服务http://localhost:8769/api-b/hi?name=jav&token=java 请求的是 service-feign 服务需要启动eureka-server, eureka-client , service-feign, service-r...…
-
echart折线图,柱状图,雷达图(+颜色渐变)
页面的结构<!DOCTYPE html><html style="height: 100%"><head> <meta charset="utf-8"></head><body style="height: 100%; margin: 0"><div id="container" style="height: 100%"></div><script type="text/javasc...…
-
SpringCloud Stream 使用
介绍streamspring cloud stream 是一个用微服务应用构建消息驱动动力的框架。整合了spring boot + spring integration 来连接消息代理中间件以实现消息事件驱动。核心的概念: 发布-订阅 , 消费组, 分区三个核心的概念。具体使用介绍引入pom:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...…
-
TransmittableThreadLocal使用
问题分析ThreadLocal: 解决多线程变量之间的隔离, 每个线程对变量做了一个副本InheriableThreadLocal: 解决了父线程变量复制到子线程的问题class Thread{ //...略 private void init(ThreadGroup g, Runnable target, String name, long stackSize, AccessControlContext acc) { ...…
-
ReentrantLock写一个倒计时运行程序
目的测试使用ReentrantLock使用描述使用ReentrantLock写一个倒计时的程序,倒计时5s 然后开始运行 , 显示倒计时的剩余时间代码如下:package com.example.demo.concurrent;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.u...…
-
Feign使用
feign特点和ribbon一样feign也可以作微服务的负载均衡,使用feign来调用的api接口让api接口更像是本地的接口源代码 yaml 配置eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/server: port: 8765spring: application: name: service-feignfeign.hystrix.enabled: truepom...…
-
Hystrix使用
Hystrix的个人理解Spring cloud 提供的Hystrix为服务的延时超时, 网络延迟导致的服务的请求提供了一个容错的解决方案, 在集群里面服务相互调用的时候,不会因为一个节点的调用失败而影响到其他服务的业务调用, hystrix 的熔断机制为解决降级,服务熔断,线程和信号隔离,请求缓存,请求合并以及服务监控提供强大的功能。hystrix 熔断的使用pom配置<dependencies> <dependency> <groupI...…
-
ThreadPoolExecutor的使用
ThreadPoolExecutor类的介绍ThreadPoolExecutor 是java集合包下java.util.concurrent, 对外提供4个构造函数 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue) public ThreadPoolExe...…
-
Ribbon客户端的负载均衡
Ribbon 负载均衡的策略所谓负载均衡就是将服务器端的请求导向不同的真正处理业务的节点,然后返回一个响应的结果。 随机规则 (RandomRule 提供核心功能) 轮询规则 (RoundRobinRule 提供核心功能) 重试规则 (RetryRule 提供核心功能) 权重规则 (WeightedResponseTimeRule 提供核心功能) BestAvailableRule : 会过滤掉故障的实例,找出找出请求数最小的一个,选出最空闲的节点 –>继承Client...…
-
spring boot 2.x 使用LCN
myIsam & InnoDBMyIsam : 默认类型,它是基于传统的ISAM类型, 是存储记录和文件的标准方法。 不是事物安全的,不支持外键,但是适合执行大量的select, insert (不受到外键的束缚 速度快)InnoDB: 支持事物安全的引擎, 支持外键, 行锁。 如果有大量的update , insert 建议使用InnoDB类型。spring boot 2.x 使用LCNlcn 官网目前给出的lcn 版本为4.1.0 , 如何使用高版本的spring boot 会...…