- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 微服务学习-SpringCloud -Nacos (集群及CP架构相关学习)
当Nacos在集群模式下,需要对客户端的机器检查心跳,维护心跳,那么需要集群中的每台机器都去检查心跳吗?所以再看上面的代码,当有服务进行健康检查时,执行到这个方法,取模以后发现负责心跳检查的服务并不是当前服务,那么直接退出。这块就相当于,一个写请求进来,发现这个节点不是leader节点,那么它就会把这个请求进行转发,转发给leader节点。之后就是刚刚的后续操作,拿到后遍历查看票数,如果大于半数,设置自己为leader。再往下是两个任务,第一个是主节点的选举,第二个是心跳任务。我们从这个方法开始看起,
2023-04-18 23:13:41
663
原创 微服务学习-SpringCloud -Nacos (心跳机制及健康检查源码学习)
微服务在启动注册Nacos时,会创建一个定时任务,定时向服务端发生自己的心跳。发送到服务端后,服务端会更新此实例的心跳时间为当前时间。Nacos服务端在创建注册表时,会同时创建一个定时任务,定时检查服务心跳,如果服务超过15秒没有心跳,会将它的状态设置为false,当超过30秒没有心跳时,会删除实例。删除实例时,会发送DELETE请求进行删除,删除完成后,会向客户端推送最新的注册表,如果推送失败,那么客户端也可以通过定时拉取获得最新列表。
2023-04-12 23:03:15
1730
原创 微服务学习-SpringCloud -Nacos (服务发现源码学习)
第二种主动推送的方式是使用了UPD的方式,是不可靠的,有可能发生丢包。所以通过第一种定时拉取方式来进行兜底,即使主动推送失败了,也可以通过定时拉取的方式完成更新。我们进入 this.scheduleUpdateIfAbsent(serviceName, clusters)方法。它里面又会去调用queryList方法查询最新的列表,然后更新到本地。Spring的事件发布,发布了这样一个数据变化的事件。通过UPD的方式发送给客户端完成更新。然后调用updateIPs方法,
2023-04-09 21:50:51
765
原创 微服务学习-SpringCloud -Nacos (服务注册源码学习)
ephemeral前面我们了解过,是否是临时实例,默认传true,所以一般返回 buildEphemeralInstanceListKey(namespaceId, serviceName)这个结果,所以这里主要是区分nacos是AP还是CP架构的地方。将service数据写入serviceMap后,创建临时实例的方法就结束了,现在我们代码回到创建临时实例createEmptyService处继续向下走,然后再判断一次注册表中是否有service,此次没有的话就会抛出异常。后面会重点讲一下AP和CP架构。
2023-04-08 21:33:43
873
原创 微服务学习-SpringCloud -Nacos (单机部署)
因为此时调用需要使用LoadBalanced进行负载均衡,因为实际使用中机器不止一台,需要根据策略进行负载,所以需要加LoadBalanced。使用了nacos注册中心后,修改为对应的服务名即可,调用方不感知被调用服务的ip:端口。此时调用时会报UnknownHostException错误。RestTemplate加@LoadBalanced注解。打印如上内容时,说明服务已注册成功。没有使用注册中心时,请求需要加对应的IP:端口。
2023-04-01 21:50:21
455
原创 集合源码学习-LinkedList
特点:底层是双向链表,在增加或删除元素时,只需要断开连接点两边的引用即可,所以增删快,但是查询需要遍历,所以查询慢。LinkedList比ArrayList更占用内存,它维护了两个引用。源码:add()//示例LinkedList l = new LinkedList();l.add("3");l.add("5");//新增元素public boolean add(E e) { //第一次add e=3 linkLast(e); return true;}
2021-05-25 23:29:02
107
原创 集合之ArrayList总结
基础知识: 1,ArrayList 是 java 集合框架中比较常用的数据结构,**继承自 AbstractList,实现了 List 接口**。 ,2,底层采用数组实现。 3,ArrayList 实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。 特点: 1,值可重复; 2,插入元素有序; 3,允许存在null值; 4,查询效率高。源码分析初始化时定义的部分参数://初始化默认集合个数private stati
2021-05-23 22:25:17
189
1
原创 linux查看进程号,并kill进程号
1,查看用户下进程ps -ef | grep $USER2,查看指定进程ps -ef | grep xxx.log | grep -v grep3,查看指定进程数ps -ef | grep xxx.log | grep -v grep | wc -l4,查看指定进程号ps -ef | grep xxx.log | grep -v grep | awk ‘{print $2}’5...
2019-05-16 12:52:49
20008
原创 layui框架学习(1)-简介
本次项目中使用了layui框架,所以去学习了一下,感觉还可以。所以来总结一下。 官网地址:https://www.layui.com/ 后台模版:https://www.layui.com/admin/ Git地址:https://github.com/sentsin/layui/ 什么是layui框架? layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI...
2018-08-22 09:18:51
2470
原创 自己总结的Git常用命令
1,创建版本库: mkdirlearngitmkdirlearngitmkdir learngit cd learngit $pwd //用于显示当前目录,Windows下注意路径不要含中文2,把目录变成git可以管理的仓库 $git init3,把文件添加到仓库(创建一个readme文本,放入仓库目录中) $git add readme.txt...
2018-06-26 15:02:47
146
原创 linux基本命令
tail -n 20 filename 显示filename最后20行 head -n 10 test.log 查询日志文件中的头10行文件 head -n -10 test.log 查询日志文件除了最后10行的其它所有文件 grep 在文本中查找某个字符串 sed -n ‘5,10p’ filename 查看文件的第五行到第十行 cat filename 显示整个文件 cat &...
2018-06-10 12:47:12
229
转载 初级程序员面试题总结(二)-linux基本命令:
常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录touch 创建...
2018-06-08 16:09:43
470
原创 初级程序员面试题总结(一):
本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。 1,谈一谈spring。 答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的一套完整的解决方案。spring的核心有两大块,第一块是AOP,面向切面编程,它将程序与业务分离,集中来解决一些公共问题。第二块是IOC,控制反转,由容...
2018-06-08 15:55:28
7718
2
转载 jsp 九大内置对象和其作用详解
JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception1、request对象request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数...
2018-05-25 10:47:42
165
原创 Java实现发送短信验证验证码功能(下篇)
现在接上篇内容。 5,编写一个验证码验证测试类backMsg.java 此处的手机号为你发送验证码的手机号,验证码为你收到的验证码。 此处验证码验证结束。如果想整合到ssm框架中也很简单,直接上图: login.jsp 点击发送短信后,通过ajax先执行发送短信的方法,使用前记得引用jQuery包。 待填写验证码后,点击提交,进入到controller验证,成功则登录,...
2018-05-23 17:57:42
376
原创 Java实现发送短信验证验证码功能(上篇)
短信测试平台:网易云信。链接地址:https://netease.im/ 。 jar包:httpcore-4.4.3.jar, httpclient-4.5.1.jar Maven: com.alibaba fastjson 1.2.47 <!-- https://mvnrepository.com/artifact/...
2018-05-23 17:40:58
3082
2
原创 新手学习之路1-HTML
刚学习了HTML,抓紧时间来总结一下: 1,什么是HTML? HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Language)。 超文本就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 2,相关标签 (1)字体、字号 标题标签- (2)图像标签 3,表格基本语法 ...
2018-03-14 21:02:25
195
原创 冒泡排序算法
//冒泡排序 public class demo{public static void main(String [] args){ int [] array = {1,5,3,8,9,23,51,22}; for(int i=0;i<array.length-1;i++){ for(int j=0;j<array.length-1-i;j++){ if(arra
2017-11-21 14:04:52
165
原创 一维数组的常见查找法
//直线查找法int[] array= {10,20,30,40,50};System.out.println("请输入要查找的数:");Scanner scanner = new Scanner(System.in);int number = scanner.nextInt();int index = -1;for(int i=0;iif(array[i]==numb
2017-11-16 15:39:45
1959
原创 小白之路—杨辉三角
package My;public class Demo {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub int [][]yh=new int[9][]; for(int i=0;i
2017-11-01 21:37:23
166
原创 求1到100的素数,并求所需时间。
package Demo;public class Work2 {public static void main(String[] args) { //标记一个整数的约数的数量 boolean flag=true; //毫秒数 long begin=System.currentTimeMillis(); //从2循环到i-1,检验每一个数是否为i的约数
2017-10-26 11:09:50
847
Maven+SSM+Oracle+上传+分页显示的小系统
2018-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人