Sfoglia il codice sorgente

java,dubbo,读书单,tomcat

wenwan 7 anni fa
parent
commit
19ce29d688
7 ha cambiato i file con 85 aggiunte e 10 eliminazioni
  1. 6 3
      README.md
  2. BIN
      basic-knowledge/img/.DS_Store
  3. 7 3
      basic-knowledge/java.md
  4. 64 1
      middle-software/dubbo.md
  5. 5 1
      other/book.md
  6. 1 1
      web/CDN.md
  7. 2 1
      web/tomcat.md

+ 6 - 3
README.md

@@ -36,9 +36,12 @@
 ### web容器/协议/网络
 
 * [负载均衡](web/load-balance.md)
-* [Nginx](web/Nginx.md)
-* [tomcat](web/tomcat.md)
-* [http协议](web/http协议.md)
+* 服务器
+	* [Nginx](web/Nginx.md)
+	* [Tomcat](web/tomcat.md)
+* 协议
+	* [HTTP 协议](web/http协议.md)
+	* [TCP 的三次握手与四次分手](http://www.jellythink.com/archives/705)
 * [CDN](web/CDN.md)
 * [其它](web/other.md)
 

BIN
basic-knowledge/img/.DS_Store


+ 7 - 3
basic-knowledge/java.md

@@ -54,13 +54,16 @@
 * 	[java的线程状态](java的线程状态.md)
 * 	[ThreadLocal原理机制](ThreadLocal原理机制.md)
 * 	[HashMap的扩容机制](HashMap的扩容机制.md)
-* 	[NIO](NIO.md)
 * 	[Exception](java-exception.md)
 * 	[各种坑](各种坑.md)
 
-* ###### 示例
+* ###### NIO
+	* 	[NIO](NIO.md)
+	* 	[深度解读 Tomcat 中的 NIO 模型](https://mp.weixin.qq.com/s/Nk7gcwsgBhgMWTRkgAFpRA)
 	* [epoll 浅析以及 nio 中的 Selector](https://mp.weixin.qq.com/s/RmONdyXuJZa8WyJCu2j7WA)
 	* [Linux IO模式及 select、poll、epoll详解](https://segmentfault.com/a/1190000003063859)
+
+* ###### 示例
 	* [JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介](https://mp.weixin.qq.com/s/FRF-c2t_Un1Krw29yuxyaw)
 
 * ###### netty	
@@ -89,4 +92,5 @@
 ### 五、其它
 * 	[随机数生成 --- NativePRNGNonBlocking ](http://hongjiang.info/java8-nativeprng-blocking/)
 * 	[随机token 生成代码](java-random.md)
-* 	[HashMap扩容、散列碰撞](https://yq.aliyun.com/articles/225660?spm=5176.100238.spm-cont-list.1.LYRwKV)
+* 	[HashMap扩容、散列碰撞](https://yq.aliyun.com/articles/225660?spm=5176.100238.spm-cont-list.1.LYRwKV)
+* 	[一台Java服务器跑多少个线程](https://mp.weixin.qq.com/s/lQkPltX3yS3bGb9EbxHGAg)

+ 64 - 1
middle-software/dubbo.md

@@ -95,8 +95,71 @@
 * 异常
 * 调用 
 
+6.服务注册不上怎么办?
 
-####  参考资料
+```
+检查暴露服务的 Spring 配置有没有加载
+查看有没有错误日志
+在服务提供者机器上测试与注册中心的网络是否通畅(telnet 172.22.3.94 20880)
+检查与注册中心的连接是否存在(netstat -anp | grep 172.22.3.94)
+```
+
+7.RpcException: No provider available for the service 异常怎么办?
+
+```
+表示没有可用的服务提供者:
+
+检查连接的注册中心地址是否正确(若是 Zookeeper 注册中心,根节点(registry.group)是否一样)
+到监控中心/注册中心查看相应的服务提供者是否存在
+检查服务提供者是否正常运行
+```
+
+8.出现调用超时 TimeoutException 异常怎么办?
+
+```
+通常是业务(提供方)处理太慢,也可能是网络抖动引起。 如果一直超时,可在服务提供方执行:jstack PID > jstack.log 分析线程都卡在哪个方法调用上,这里就是慢的原因。 如果不能调优性能,请将 timeout 设大
+```
+9.出现 RpcException: Forbid consumer xxx access service XxxService from registry 异常怎么办?
+
+```
+该异常表示有服务提供者注册到注册中心,但服务提供者与消费者未匹配。那服务的路由规则是什么? 默认的路由规则是 服务名=[group/]serviceName[:version]。
+
+检查两边应用的注册中心与服务相关配置是否完全一样:
+
+注册中心:dubbo.registry.address、dubbo.registry.group
+服务:ServiceInterface、group、version
+```
+
+10.Dubbo 服务注册的地址与实际部署的机器地址不一样
+
+```
+某业务同学反馈,在 172.16.47.59 上面部署了一个应用,部署完结果在注册中心显示这个服务的IP不是在实际部署的机器上。 之前没清理dubbo的cache文件显示在 172.16.50.196,清理缓存以后显示在 172.16.47.53 上面。(dubbo-2.5.3)
+
+问题根源:NetUtils.getLocalHost() 调用的 InetAddress.getLocalHost() 返回了一个错误的IP地址。 其原理是通过获取本机的 hostname,然后对此 hostname 做解析,从而获取IP地址。 即机器的 hostname 映射的IP地址不是机器实际的IP地址。
+
+解决方案:
+
+修改 hostname
+在 /etc/hosts 中配置 hostname -> 本机IP地址
+```
+
+11.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for {root.path}
+
+Dubbo 应用使用 ZooKeeper 作为注册中心,启动时报该异常。
+
+```
+问题根源:Curator/ZooKeeper的JAR版本不匹配ZooKeeper服务器安装的版本
+```
+
+12.Curator 报 NoSuchMethodError: org.apache.zookeeper.server.quorum.flexible.QuorumMaj.(Ljava/util/Map;)V
+
+Dubbo 应用使用 ZooKeeper 作为注册中心,启动时发生该异常。
+
+```
+问题根源:QuorumMaj类未定义单个Map参数的构造函数,而EnsembleTracker类却引用了它
+```
+
+###  参考资料
 
 [http://www.oschina.net/search?q=dubbo&scope=project&fromerr=OSwWxF3l](http://www.oschina.net/search?q=dubbo&scope=project&fromerr=OSwWxF3l)
 

+ 5 - 1
other/book.md

@@ -35,7 +35,11 @@
 *	《java 数值计算法编程》
 *	《架构实战(软件架构设计的过程)》
 *	[《尽在双11——阿里巴巴技术演进与超越》](尽在双11——阿里巴巴技术演进与超越.md)
-*	[《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》](book--亿级流量网站架构核心技术.md)
+*	[《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》](book--亿级流量网站架构核心技术.md)
+*	《分布式数据库架构及企业实践——基于Mycat中间件》
+*	《Apache Kafka源码剖析》
+*	《Docker从入门到实战》
+*	《Tomcat架构解析》
 
 
 

+ 1 - 1
web/CDN.md

@@ -2,7 +2,7 @@
 
 ---
 
-####简介
+#### 简介
 
 CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上**有可能影响数据传输速度和稳定性的瓶颈和环节**,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

CDN的好处不止是加速,还可以有效地降低源站负载,降低高额的带宽成本(不必按峰值带宽直接向ISP购买带宽),防止DDOS攻击等。
 

**通常网络访问中会有"三公里"路程**

* 第一公里为:源站到ISP接入点
* 第二公里为:源站ISP接入点到访问用户的ISP接入点
* 第三公里(最后一公里)为:用户ISP接入点到用户客户端

```
第一公里的耗时取决于源站自身响应能力和出口带宽
第二公里的耗时取决于从源站的接入点到最终用户的接入点之间的传输路径,主要为网络运营商之间的互连瓶颈问题,不同地区骨干网之间的数据交换、传输,会导致传输途中的路由阻塞和延迟
第三公里的耗时取决于最终用户接入Internet的方式,会越来越快,以后不会是瓶颈
```

+ 2 - 1
web/tomcat.md

@@ -4,7 +4,8 @@
 
 #### 附录
 
-[官方网站](http://tomcat.apache.org/)
+* [apache tomcat 官网](http://tomcat.apache.org/)
+* [深度解读 Tomcat 中的 NIO 模型](https://mp.weixin.qq.com/s/Nk7gcwsgBhgMWTRkgAFpRA)
 
 ---
 ### tomcat服务器优化