发表于: 2020-07-24 23:06:53
2 1526
今天完成的事情
1. 分开部署服务端与客户端
遇到的问题
1. 客户端连接不到服务端
服务端报错
org.springframework.remoting.RemoteConnectFailureException: Cannot connect to remote service [rmi://192.168.0.106:1199/ItemRetag]; nested exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
主要的原因就是我们明明配置的是公网 ip,但是错误信息显示被内网 拒绝了连接。
网上又教程说需要修改 hostname,但是我没成功,最后我是在启动参数里面加了一个东西。
java -jar -Djava.rmi.server.hostname=[公网ip] ptteng-server.jar
这样的话就指定了 rmi 的主机地址,网上的说法是 rmi 在服务器上运行的时候它以为自己的地址可能是某种内网地址,与我们使用的公网 ip 不一致,这样客户端去注册的时候是正常的,用的我们自己在配置文件中指定的公网 ip 或者域名,然后就会得到若干 service 的连接,但是 host 是错误的。
2. 多客户端+多服务端
今天一开始是想把服务端放在 nginx 后面做到单客户端对应多服务端,可以实现,但是比较麻烦,因为我有多少个 service 端口就需要转发多少个端口到其他服务器。
问了一下马哥说这个不应该这样做,nginx 后面放多客户端,但是服务端的集群应该使用框架来实现,要去看看微服务、dobbo、spring cloud。
今天下午一直看这个也没看出个名堂来。
刚刚晚上写日报这会儿我突然想起来以前做缓存切换的时候我的方案,把多个服务端地址都配置在客户端里面,然后一个不行了就换另外一个。
在客户端里面实现 nginx 负载均衡的效果。感觉可行
收获
1. 关于 rmi 的注册于服务
2. 什么是 zookeeper
一个分布式协调系统,用于管理分布式服务。本身可以做一个集群,通过选举来确定哪台 zookeeper 是 leader,做到了高可用。
3. spring cloud
微服务解决方案,包括服务注册与发现、配置中心、全链路监控、API 网关。
明天的计划
1. 把刚刚想到的多服务端方案实现一下
2. 学习微服务
这个任务步骤也没说清楚目是什么,到底是让我们学习微服务、spring cloud、dubbo 还是说只用 rmi 实现了要求的功能就行,任务八我好像做了挺久了。
做到现在主要是说学习了 spring boot、使用 freemarker 重写了页面、spring 缓存注解、拆分 service 使用 rmi、maven 建立多模块项目、多模块项目的依赖管理以及编译。
新东西挺多的,遇到了不少问题花了挺多时间,今天花了挺多时间解决服务器部署的那个问题还有看 zookeeper和 spring cloud 的资料。
今天看微服务有点懵,任务八进度也有点慢,但是学了总没坏处吧。
评论