网关

Go语言开发分布式聊天室

穿精又带淫゛_ 提交于 2021-02-10 07:37:11
声明 我是一个刚学go语言的菜鸟,还没有资格谈论什么技术分享,只是为了展示fooking的实际应用,同时把我用go写的聊天室代码贴出来供大家消遣,如果有入不了各位法眼的代码,望轻喷。该聊天室基于fooking,而业务代码是采用Go + Fastcgi。 完整的源代码在 https://github.com/scgywx/fooking/blob/master/example/chat/gateway.go ,全代码200多行,去掉router部分代码,实际逻辑代码只有170来行,逻辑简单,功能强大。 详解 聊天服务器的入口main函数里有3个IP和端口配置,分别是Chat服务器、Router服务器和Redis服务器。 func main() { listener, _ := net.Listen("tcp", "0.0.0.0:9001")//Chat服务器配置 srv := newChatServer("test:9010", "test:6379");//Router配置与Redis配置 fcgi.Serve(listener, srv) } Chat服务器就是实现主要的聊天逻辑,Router服务器是用于转发消息,Redis用来存储用户信息。上面我讲过这个聊天室是基于fooking,所以客户端不是直接与go通信,而是透过fooking来访问的

微服务下的网关与容错

烈酒焚心 提交于 2020-12-02 10:12:49
自从微服务概念以来,众多的软件架构在践行着这一优秀的设计理念。各自的系统在这一指导思想下收获了优雅的可维护性,但一方面也给接口调用提出了新的要求。比如众多的API调用急需一个统一的入口来支持客户端的调用。在这种情况下API GATEWAY诞生,我们将接入、路由、限流等功能统一由网关负责,各自的服务提供方专注于业务逻辑的实现,从而给客户端调用提供了一个稳健的服务调用环境。之后,我们在网关大调用量的情况下,还要保证网关的可降级、可限流、可隔离等等一系列容错能力。 一、网关 这里说的网关是指API网关,直面意思是将所有API调用统一接入到API网关层,有网关层统一接入和输出。一个网关的基本功能有:统一接入、安全防护、协议适配、流量管控、长短链接支持、容错能力。有了网关之后,各个API服务提供团队可以专注于自己的的业务逻辑处理,而API网关更专注于安全、流量、路由等问题。 1.1、单体应用 单体应用.png 业务简单,团队组织很小的时候,我们常常把功能都集中于一个应用中,统一部署,统一测试,玩的不易乐乎。但随着业务迅速发展,组织成员日益增多。我们再将所有的功能集中到一个TOMCAT中去,每当更新一个功能模块的时候,势必要更新所有的程序。搞不好,还要牵一发动全身。实在难以维护。 1.2、微服务 系统微服务化.png 单体应用满足不了我们逐渐增长的扩展需求之后,微服务就出现了

HTTP读书笔记(三)

两盒软妹~` 提交于 2019-12-21 22:08:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 第六章 HTTP 与网关 1. 网关有: HTTP/*: 服务器端 web 网关,将 HTTP 请求转换为其他协议。 Eg : HTTP/FTP 。 HTTP/HTTPS: 服务器端安全网关,通过网关对 web 请求加密,客户端还是普通的 HTTP 请求。 HTTPS/HTTP :客户端安全加速器网关,也是一种专门用来加密的服务器,让原始服务专门解决请求的问题。 2. 资源网关:也就是最常见的网关:应用程序服务器,会将目标服务器和网关结合在一个服务器中实现,客户端通过 HTTP 进行通信的目地是:与服务端的应用服务相连。 3. 网关应用编程接口,第一个流行的应用程序网关 API 就是通用网关接口 (CGI), 请求需要网关资源时,服务器会请辅助应用程序处理请求,服务端同常将整条请求传给应用程序, CGI 向数据返回一条响应或响应数据,服务端再转会给客户端。但是为每个 CGI 请求引发一个心得进程请求是开销很大的,人们开发了一种新的 CGI 称为快速 CGI(fastCGI), 这个接口模拟了 CGI ,但它作为持久守护进程运行,消除每个请求建立的新进程所带来的性能损耗。 4. 应用程序接口和 Web 服务: HTTP 是作为连接应用程序的基础通信协议,但两个应用程序之间的通信接口协商怎么办? Web

How JuBo Works: The Basics

倾然丶 夕夏残阳落幕 提交于 2019-12-07 14:41:37
JuBo是一个数据驱动、具有学习能力的物联网关。JuBo的目标是让智能设备快捷高效的联网。JuBo是开源的, 项目地址 ( https://github.com/jubolin) 这只是一个概述,更多内容请参见 JuBo Wiki 对于JuBo来说,所有的智能设备或者传感器都被定义为Thing,设备的功能被定义为Service,功能的属性定义为Property。Thing + Service + Property唯一确定了一个设备的某个功能属性,是JuBo中最小的控制单元。例如电灯提供了照明功能,有亮度和颜色两个属性,那么在JuBo中就表现为bulb + lighting + brightless和bulb + lighting + color两条记录。所有对这个电灯的管理、控制和智能都是基于这两条记录的。也就是说,JuBo所有的功能都是基于设备功能属性记录的,即数据驱动的。 智能设备接入 设备接入需要完成以下步骤: 确定设备对外提供的功能属性(这个工作在开发阶段完成) 设备通过对应物联网协议的Connector连接上JuBo 初始化并注册设备(设备描述、厂家描述等信息) 注册所有功能属性并订阅(Sub)设备本身的功能属性 功能属性记录保存在数据库中,数据库只能通过DDP Service操作 使用者控制设备 在Web页面或CLI修改某个功能属性 修改值保存到数据库中

vmware上centos的一次网卡配置经历

痴心易碎 提交于 2019-11-26 18:19:25
昨天遇到一个linux虚拟机网络设置的问题,记录如下,也算给相同经历的同学以参考。 目的 在vmware9+centos5.8上配置桥接模式的网络接口。 环境 在win7机上安装了 vmware9, vmware9上运行centos5.8虚拟机,win7的网络使用的是其他机器共享出来的无线网络(win7+Connectify)。 问题 在调整centos5.8的网络连接方式为Bridged(桥接)后,centos5.8的eth0网卡采用dhcp(自动获取动态IP)激活时出错,提示ping 不通网关。 分析 由于报错直接是ping 不通网关,所以我的重点是解决让centos5.8机ping通网关。直接上网找办法,找到一篇文章 http://blog.csdn.net/kevin1078/article/details/7399954 ,说是要设置 vmware9中 VMNet0 的物理网卡,可惜经过设置后,问题没有得到解决,在虚拟机上激活网卡的时候还是ping不通网关。 接着检查主机的网卡设置,意外发现尽然主机也ping 不通网关,甚至连局域网内的其他主机也ping不通,很是奔溃,其中的原因无解,猜测是 Connectify这个软件做了某种限制,禁止ping网关和局域网内的其他主机。 奔溃无助中。。。 解决 瞬间的灵感,为什么win7主机能够上网(也是动态获取IP)