摘要:
无缓冲管道的发送和接收过程是阻塞的,还可以创建一个有缓冲(Buffer)的管道。 定义: 只在缓冲已满的情况,才会阻塞向缓冲管道(Bufferer Channel)发送数据。同样,只有在缓冲为空的时候,才会阻塞从缓冲管道接收数据。 通过向make函数再传递一个表示容量的参数(指定缓冲的大小),可以创 阅读全文
摘要:
RPC技术内部原理是通过两种技术的组合来实现的:本地方法调用 和 网络通信技术。 RPC简介 RPC是Remote Procedure Call Protocol单词首字母的缩写,简称为:RPC,翻译成中文叫远程过程调用协议。所谓远程过程调用,通俗的理解就是可以在本地程序中调用运行在另外一台服务器上 阅读全文
摘要:
服务发现 为什么要使用服务发现 设想下,我们写了一些通过REST API或者Thrift API调用某个服务的代码,为了发起这个请求,代码需要知道服务实例的网络地址(IP 地址和端口号)。在传统运行在物理机器上的应用中,某个服务实例的网络地址一般是静态的,比如,代码可以从只会偶尔更新的配置文件中读取 阅读全文
摘要:
单体应用 单体应用:所谓的单体应用就是指一个war包包含了项目的所有功能。尽管有一个逻辑模块化架构,但应用程序被作为一个单体进行打包和部署。例如,我们所熟知的许多Java应用程序被打包成WAR文件部署在如Tomcat或者Jetty之类的应用服务器上。其他Java应用程序被打包成可执行JAR包。 单体 阅读全文
摘要:
RPC 通信 对于单独部署,独立运行的微服务实例而言,在业务需要时,需要与其他服务时行通信,这种通信方式是进程之间的通讯方式(简称IPC)。 IPC有两种实现方式,分别为:同步过程调用、异步消息调用。在同步过程调用的具体实现中,有一种实现方式为RPC通信方式,远程过程调用。(英语:Remote Pr 阅读全文
摘要:
和另一个系统进行对接,使用activemq进行消息通信。对方使用java客户端监听一个topic,我们需要发送TextMessage消息,对方接收后进行处理。而我们因为系统架构的原因只能使用python进行推送,也就只能通过stomp协议发送消息。然后就遇到了问题,发送的消息在java消费者端只能解 阅读全文
摘要:
package main import "time" func main(){ connectTimeout := 10 time.Sleep(time.Second*connectTimeout) } 这样使用会报错 int and time.Duration are different type 阅读全文
摘要:
package main import ( "fmt" "redigo-master/redis" ) func main() { conn, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Println("redis. 阅读全文
摘要:
基本介绍: 网络编程有两种: 1)tcp socket编程,是网络编程的主流。之所以叫tcp socket编程,是因为底层是基于tcp/ip协议的 2)b/s结构的http编程,我们使用浏览器去访问服务器时,使用的就是http协议,而http底层依旧是用tcp socket实现的 tcp socke 阅读全文
摘要:
反射基本介绍 1)反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind) 2)如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段,方法) 3)通过反射,可以修改变量的值,可以调用关联的方法 4)使用反射,需要 import ("reflect") 反射重要 阅读全文