角色注册中心一般有三种角色: 服务提供者:启动时,向 Nacos 注册服务信息。 服务消费者:定时(间隔30s)拉取服务(pull),将拉取的信息缓存在服务列表中。同时 Nacos 发现服务信息变更,会主动推送变更消息 (push)。 注册中心:Nacos 。 实例Nacos 会将服务提供者划分为 临时实例 和 非临时实例 ,Nacos 对这两种实例的健康监测是不一样的。默认情况下:所有的实例都是临时实例。推荐临时实例,非临时实例对服务器压力大。 临时实例:采用心跳监测。如果服务不存在,从列表中删除。 非临时实例:Nacos 发起请求检测。如果服务不存在,并不会从列表中删除,而是标记不健康,等待恢复健康。 配置非临时实例,通过更改项目配置spring: cloud: nacos: server-addr: localhost:8848 discovery: cluster-name: GZ namespace: 62c75d23-5839
Eureka 是 Netflix 开发的服务发现框架,本身是一个基于 REST 的服务,主要用于定位运行在 AWS 域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 Spring Cloud 将它集成在其子项目 spring-cloud-netflix 中,以实现 Spring Cloud 的服务发现功能。Eureka 角色在 Eureka 架构中,微服务角色有两类:Eureka Server:服务端,注册中心 记录服务信息 心跳监控 Eureka Client:客户端 Provider:服务提供者 注册自己的信息到 Eureka Server 每隔 30 秒向 Eureka Server 发送心跳 Consumer:服务消费者 根据服务名称从 Eureka Server 拉取服务列表 基于服务列表做负责均衡,选中一个微服务后发起远程调用 搭建 Eureka Server 创建项目,引入下面依赖 <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spr
转载:https://mp.weixin.qq.com/s/BhfjVuMwXkFFQhgvw2KypA日常开发中,为了更好管理线程资源,减少创建线程和销毁线程的资源损耗,我们会使用线程池来执行一些异步任务。但是线程池使用不当,就可能会引发生产事故。线程池默认使用无界队列,任务过多导致OOMJDK 为开发者提供了线程池的实现类,我们基于 Executors 组件,就可以快速创建一个线程池。日常工作中,一些小伙伴为了开发效率,反手就用Executors 新建个线程池。写出类似以下的代码:public class NewFixedTest { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(10); for (int i = 0; i < Integer.MAX_VALUE; i++) { executor.execute(() ->
服务拆分注意事项 不同微服务,不要重复开发相同业务。 微服务数据独立,不要访问其它微服务的数据库。 微服务可以将自己的业务暴露为接口,供其它微服务调用。 远程调用提供者与消费者 服务提供者:一次业务中,被其它微服务调用的服务(提供接口给其它微服务)。 服务消费者:一次业务中,调用其它微服务的服务(调用其它微服务提供的接口)。
微服务是一种经过良好架构设计的分布式架构方案,微服务具有以下特征: 单一职责:微服务拆分粒度更小,每个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。 面向服务:微服务对外暴露业务接口。 自治:团队独立、技术独立、数据独立、部署独立。 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。 架构优缺点单体架构简单方便、高度耦合、扩展性差,适合小型项目。将业务的所有功能集中在一个项目中开发,打成一个包部署。优点 架构简单 部署成本低 缺陷 耦合度高 分布式架构松耦合,扩展性好。但架构复杂,难度大。适合大型互联网项目。微服务是一种良好的分布式架构方案。优点 降低耦合度 有利于服务升级扩展 缺点 复杂度增加 部署难度增加 技术栈作用 \ 框架DubboSpring CloudSpring Cloud Alibaba注册中心ZooKeeper、RedisEureka、ConsulNacos、Eureka服务远程调用Dobbo 协议Feign (http 协议)Dubbo、Feign配置中心无Spring Cloud ConfigSpring C
每读一本书,就像是一次旅行。这次我在旅行路上,看到了李尚龙老师的一些片段故事,也正在体会李尚龙老师的一些感悟。这样等我三十岁来临时候,我心里的恐惧将会减少一些,因为这出我经历的 “第二个 三十岁“。 你要坚持你的正直,哪怕身边的人都在走捷径;你要坚持你热爱的,哪怕周围的人都觉得你很苦;你要坚持你的路,哪怕一路上只有自己一个人。苦难是对生命的赞美,就算到了低谷,人也会有出路,只要一个人还在路上,还在勇往直前。三十岁,真正的人生才刚刚开始。虽然我们无法阻挡时光流逝,但我们可以让心灵保持年轻。不要相信太多实际上能力level(水平)不高,但是年龄很大的人或者长辈的话,尊敬他们,但不一定要相信太多‘老人言’。你需要想想,是他们的想法让他们活成现在的样子,除非你愿意像他们那样活着,不然,就去寻找自己的路。”二十多岁死,八十多岁埋。人到底什么时候才算变老了呢?我的答案是,不学习的时候,不进步的时候当你的理想被人嘲笑时,记住别被别人的眼光左右,别被别人的评价绑架,更不要拿自己的青春为别人的言论买单。一个小人物的超级英雄梦。这世界总是如此,没有人看到你的认真,大家只在乎结果,只有你关注过程。每个大城
今天把《正义的算法》看完了。这是一部台湾律政轻喜剧。这部剧的题材,和国内的《精英律师》很相似。但我认为:这部剧拍的比国内的好,《精英律师》简直就是律政剧的反例。《正义的算法》这部剧,整体看下来,剧情挺不错的,有涉及社会的黑暗面、人性、正义等各种成分在里面。差不多两集一个案子,里面的一些案子,在如今社会也是一些热门话题,例如:医生救助别人,做心肺复苏,却被救助人告上法庭;防疫检查,里长放相关人员逃离居家隔离;诈骗……正义到底是什么?结局完美的就是正义吗?《正义的算法》里面有一集。一对网红夫妻,在一次海边骑行时候,不小心摔了出去。男生保护了女生,导致男生的腿截肢。出院后,两人还算相处正常,只不过随着日子的慢慢推移,两个人的关系,产生了巨大裂痕。最终决定离婚,但是两人在婚后财产上有重大分歧,男方想拥有全部财产,女方不服,找到了律师,想通过法律途径解决。随着律师的深入了解发现:男方其实还是深爱女方,只不过由爱生恨,自己收入低微,还是个残疾人,每当女方工作晚归,就认为她是在外面勾引其他男人,每天戒酒消愁,对女方开始无理取闹。男方提出看似无理的离婚条件,是为了不让女方离开自己,不能轻易放这个“荡妇
概述从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算都是叫位运算,即将符号位共同参与运算的运算。Java 中有以下的运算符:运算符名称示例结果说明<<左移4<<216符号左边的操作数左移指定的位数>>右移4>>12将符号的左边的操作数右移指定位数>>>无符号右移4>>>10将符号左边的操作数右移指定的位数&与运算4&20两个二进制位,只要有一个为0,那么结果就为0,否则结果为1|或运算4!26两个二进制位,只要有一个为1,那么结果就为1,否则结果为0^异或运算4^26相同二进制位,结果为0;不同的二进制位,结果为1~取反-4-5二进制位,0变1;1变0与、或、异或、取反class Playground { public static void main(String[ ] args) { int a = 3, b = 4; &
socket 起源于UNIX,在 Unix 一切皆文件哲学的思想下,socket 是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。连接服务器Telnet 命令telnet 是一种用于网络编程的非常强大的调试工具。可以使用其来连接远程计算机,或者用于其它网络服务进行通信测试。获取当前的UTC时间telnet time-a.nist.gov 13 响应内容59760 22-06-30 09:02:19 50 0 0 946.4 UTC(NIST) * Java 连接在 Java 中,可以使用 Socket(套接字)进行连接到某个地址的端口,并打印响应内容。Socket 负责启动该程序内部与外部之间的通信。获取当前的UTC时间public class SocketTest { public static void main(String[] args) { try (Socket socket = new Socket("time-a
此间少年
QQ群:539165194