微服务
文章平均质量分 80
微服务相关文章
developer@liyong
GISer
展开
-
微服务-java spi 与 dubbo spi
使用load方法想要获取指定的实现类,需要自己进行遍历并编写各种比较代码,可能实现有多个所以需要比对。使用load方法频率高,容易影响IO吞吐和内存消耗, 可以看到回去静态资源目录下读取文件。SPI :Service Provider Interface, 服务提供接口。使用Map的hash查找,来提升检索指定实现类的性能。增加缓存,来降低磁盘IO访问及减少对象的生成。通过一个案例来看SPI。原创 2024-01-06 18:18:46 · 781 阅读 · 0 评论 -
微服务-dubbo工程案例搭建
也是就是提供方返回的数据进行缓存,前提是数据不需要频繁的变动。这里需要注意缓存数据的大小适不适合做本地缓存,如果是大数据缓存那么需要整合第三方缓存,例如Redis。广播调用就是我们调用一个引用,但是其实所有节点都会执行这个方法,这个应用场景就比如我们要清空每个节点的业务缓存,或者每个节点都要记录一些日志。check设置为false后,如果没有提供方调用会抛异常,如果将来提供方正常了以后,还是可以调用成功。所谓的依赖检查也就是,检查提供方是否提供了对应的服务,如果没有则消费方是会启动报错的。原创 2024-01-06 16:48:37 · 818 阅读 · 0 评论 -
微服务-sentinel-基本案例,持久化
寻找到了 com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter#start 的相关收发数据逻辑。触发一次 Http 请求调用后,发现进入了 com.alibaba.csp.sentinel.init.InitExecutor#doInit 断点。这样我们在界面修改就可以持久化到nacos,这里要注意如果在nacos直接修改,控制台上是不能感知到的。关键代码 2:从 ServerSocket 的 accept 方法收数据。原创 2024-01-06 09:03:11 · 1253 阅读 · 0 评论 -
微服务-Gateway
官网地址自定义局部自定义类,这个类可以参考DedupeResponseHeaderGatewayFilterFactory进行定义@Component@Override@Override@Overrideif (!// 如果这个开关是关闭状态() -> {}));@Override配置routes:filters:- Cost=ON # 这个名字取前面GatewayFilterFactory的自定义全局@Component@Override。原创 2024-01-04 08:09:18 · 2312 阅读 · 1 评论 -
微服务-@FeignClient 与 Feign 隔离
我们在调用的时候在选择实例NacosNamingService#selectInstances,发现会选择实例,这就是 OpenFeign 首次发起远程调用时,会很慢的原因。然后继续往下走:HystrixTargeter -> Feign -> ReflectiveFeign。我们断点打在factoryBean.getObject() 追进去。原创 2024-01-03 15:19:15 · 513 阅读 · 0 评论 -
微服务-OpenFeign-工程案例
OpenFeign:SpringCloud自研,SpringCloud的第二代(负载均衡工具包),扩展支持了@RequestMapping,@GetMapping等之类的注解的能力。首先我们搭建三个服务提供方,简单的搭建直接使用启动参数-Dserver.port 指定不同的端口进行启动,然后在提供方进行调用。是NetFlix的开源项目,主要来提供关于客户端的负载均衡能力。Feign:NetFlix,SpringCloud 的第一代LB(负载均衡)客户端工具包。消费方代码,可以看到打印不同的端口。原创 2024-01-02 21:33:59 · 662 阅读 · 0 评论 -
微服务-理论(CAP,一致性协议)
在我们说一致性的时候,如果去保证强一致性,这个时候客户端如果请求到达了B是不能对外提供服务的,因为一旦提供服务这个数据还是老的数据,就产生了数据的不一致性。服务端节点都存储所有数据,但每个节点只负责其中一部分服务,在接收到客户端的“写“(注册、心跳、下线等)请求后,服务端节点判断请求的服务是否为自己负责,如果是,则处理,否则交由负责的节点处理;客户端以服务为维度向服务端注册,注册后每隔一段时间向服务端发送一次心跳,心跳包需要带上注册服务的全部信息,在客户端看来,服务端节点对等,所以请求的节点是随机的;原创 2024-01-02 08:18:16 · 1279 阅读 · 0 评论 -
微服务-springcloud概览 +(eureka实践, nacos实践)
LoadBalanced这个注解一定要加上(org.springframework.cloud.client.loadbalancer)5 调用方式和上面的一样,使用负载均衡的RestTemplate 进行调用。5.1 使用RestTemplate 进行RPC调用。1 首先我们需要安装 Nacos Server。2 搭建Eureka Server。可以选用Docker。原创 2023-12-24 15:38:59 · 1060 阅读 · 0 评论