一个轻量级分布式RPC框架--NettyRpc - 阿凡卢 - 博客园 http://www.cnblogs.com/luxiaoxun/p/5272384.html 这个RPC框架使用的一些技术所解决的问题: 服务发布与订阅:服务端使用Zookeeper注册服务地址,客户端从Zookeeper获取可用的服务地址. 通信:使用Netty作为通信框架. Spring:使用Spring配置服务,加载Bean,扫描注解. 动态代理:客户端使用代理模式透明化服务调用. 消息编解码:使用Protostuf…
1.前言 以前使用 websocket来实现双向通信,如今深入了解了 NIO 同步非阻塞io模型 , 优势是 处理效率很高,吞吐量巨大,能很快处理大文件,不仅可以 做 文件io操作, 还可以做socket通信 .收发UDP包.Pipe线程单向数据连接. 这一篇随笔专门讲解 NIO socket通信具体操作 注意:这是重点!!! 兴趣集合有4个事件, 分别是: SelectionKey.OP_ACCEPT [接收连接就绪,专用于服务端] SelectionKey.OP_CONNECT [连接就绪…
首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. ResultInfo.java package com.fei.webservice.user.bean; import java.text.MessageFormat; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.…
1.流程: 1.安装Oracle客户端(绿色版和安装版均可,建议安装在和Oracle服务端文件夹并行的路径下,例:E:\app\yginuo\product\11.2.0) 2.配置环境变量和注册表(详情见2.) 3.安装PL/SQL 4.配置PL/SQL的目录和OCI库(客户端目录/客户端的OCI动态库[oci.dll],例:E:\app\yginuo\product\11.2.0\instantclient_11_2,E:\app\yginuo\product\11.2.0\instantc…
2017-10-1016:10:2 svn服务端安装.权限修改以及客户端的使用 svn服务端.客户端.汉化包下载 http://pan.baidu.com/s/1c1Ogj2C 1.安装服务器端程序(傻瓜式下一步..下一步) 选择服务器和管理界面都安装 选择安装路径和版本库存放路径,选择版本库的访问方式为http或https 1.1安装汉化包(可选) 桌面右键svn---->settings---->languages--->中文 2.创建版本库 2.1创建 在Repositories上…
在asp.net 1.x版本中,当textbox控件的disabled属性设置为disabled的时候看,在服务端还是可以通过控件id.text获取到textbox的值的,只是不能输入值而已.但是在以后的版本中,你会发现当textbox设置为disabled以后,服务端你无法通过控件ID.text来获取到textbox的值了,其中的一中解决的方法如下: 在aspx页面不对textbox控件设置disabled属性,而是在cs页面中页面加载的时候如下设置: protected void Page_…
Eureka服务端开启密码的认证比较简单 在pom文件中加入: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 配置如下: server: port: 5000spring: application: name: EurekaServe…
Zookeeper主要可以干哪些事情 配置管理,名字服务,提供分布式同步以及集群管理.那这些服务又到底是什么呢?我们为什么需要这样的服务?我们又为什么要使用Zookeeper来实现呢,使用Zookeeper有什么优势? 配置管理 在我们的应用中除了代码外,还有一些就是各种配置.比如数据库连接等.一般我们都是使用配置文件的方式,在代码中引入这些配置文件.但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而…
今天研究这个问题搞了整整一天啊!终于出来了,不过我没有多大的成就感,为什么呢?因为这不是我的劳动成果.同样的问题,我却没想出来!心塞的很啊…… 不过还是要给大家分享一下,希望给大家带来帮助! 先声明一下:不是我不放源码,是因为这个功能是我项目的一小部分,贴源码太声势浩荡了,,而且下载后不一定能用,所以就贴核心代码啦~ 我是以每分钟向服务端发送一个心跳来保持连接的,如下: sendObject()中的代码(就是发送内容到服务端): public void sendObject(String obj…
1.项目介绍: 由于大数据部门涉及到其他部门将数据传到数据中心,大部分公司采用的方式是用json文件的方式传输,因此就需要编写服务端和客户端的小程序了.而我主要实现服务端的代码,也有相应的客户端的测试代码.这里须有一个需要提到的是,我在实现接收json文件的同时,而且还需将数据写到hbase中.写入到hbase当中采用的是批量插入的方式,即一次插入多条记录. 好了,有了前面的说明,下面来简单的说一下我实现的服务端的小程序把. 2.为了实现服务端能够监听客户端的行为,因此我在服务端采用多线程的技术…
一.最近做阿里云oss文件上传开发,一点收获分享给大家,帮助大家绕过一些坑.关于阿里云oss服务的介绍,我这里不做赘述了,可以查看阿里云OSS开发api文档. 在这里我主要介绍下,文件上传流程比较复杂的服务器设置回调功能.整个流程图是这样的: 大家可以参考阿里api文档介绍的工作流程说明:https://help.aliyun.com/document_detail/31927.html?spm=5176.doc31988.6.633.OTY557 二. 客户端请求policy,签名,key以及…
在上一篇文章中我们大致浏览了zookeeper的启动过程,并且提到在Zookeeper的启动过程中leader选举是非常重要而且最复杂的一个环节.那么什么是leader选举呢?zookeeper为什么需要leader选举呢?zookeeper的leader选举的过程又是什么样子的?本文的目的就是解决这三个问题. 首先我们来看看什么是leader选举.其实这个很好理解,leader选举就像总统选举一样,每人一票,获得多数票的人就当选为总统了.在zookeeper集群中也是一样,每个节点都会投票,如…
在上一篇,我们了解了zookeeper最基本的配置,也从中了解一些配置的作用,那么这篇文章中,我们将介绍Zookeeper的启动过程,我们在了解启动过程的时候还要回过头看看上一篇中各个配置参数在启动时的位置. Zookeeper的启动入口在org.apache.zookeeper.server.quorum.QuorumPeerMain. 在这个类的main方法里进入了zookeeper的启动过程,首先我们会解析配置文件,即zoo.cfg和myid. 这样我们就知道了dataDir和dataLo…
<script type="text/javascript"> var jsObject = @Html.Raw(Json.Encode(Model.Objects)); </script> 记录一下,备忘.…
1.zookeeper和eureka区别 zookeeper向client进行ping操作,如果不通,就删除client节点 eureka自我保护机制是client向注册中心发送心跳包,如果一定时间内没收到心跳包,则踢除client节点 zookeeper工具ZooInspector @EnableDiscoveryClient 当服务使用consule.zookeeper时,使用@EnableDiscoveryClient向注册中心上注册服务 ###订单服务的端口号 server: port:…
服务注册发现与注册中心对比-Eureka,Consul,Zookeeper,Nacos对比 注册中心简介 流程和原理 基础流程 核心功能 1.Eureka.Consul.Zookeeper三者异同点 1.1 Nacos 与其它注册中心特性对比 2.CAP理论 3.eureka和zookeeper的cap理论 3.1 Eureka 3.1.1 eureka的基本原理 3.1.2 eureka的自我保护机制 3.1.3 eureka保证ap 4.zookeeper 4.1 基础描述 4.2 组件特点…
一.Android 低功耗蓝牙(BLE)的API简介 从Android 4.3(API 18)才支持低功耗蓝牙(Bluetooth Low Energy, BLE)的核心功能, BLE蓝牙协议是GATT协议, BLE相关类不多, 全都位于android.bluetooth包和android.bluetooth.le包的几个类: android.bluetooth. .BluetoothGattService 包含多个Characteristic(属性特征值), 含有唯一的UUID作为标识 .Bl…
网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gSOAP的安装: 到http://sourceforge.net/projects/gsoap2/去下载最新版本,目前是:2.7.15 简单安装: configure --prefix=/usr/local/gSOAP make make install 为了后面的C和C++版本的服务和客户端的开发能…
1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写当前Linux电脑的IP //gsoap ns service name: SmsWBS//gsoap ns service style: rpc//gsoap ns service namespace: http://192.168.2.161:8000/SmsWBS.wsdl//gsoap ns…
转自:https://www.aliyun.com/zixun/wenji/1263190.html CXF服务端: package com.sean.server; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface Plus { public int add(@WebParam(name="x") int x, @WebParam(name="y"…
写在前面: 昨天在博客记录自己抽空写的一个Socket聊天程序的初始设计,那是这个程序的整体设计,为了完整性,今天把服务端的设计细化记录一下,首页贴出Socket聊天程序的服务端大体设计图,如下图: 功能说明: 服务端主要有两个操作,一是阻塞接收客户端的socket并做响应处理,二是检测客户端的心跳,如果客户端一段时间内没有发送心跳则移除该客户端,由Server创建ServerSocket,然后启动两个线程池去处理这两件事(newFixedThreadPool,newScheduledThrea…
Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分为 Eureka Server 和 Eureka Client. Eureka服务端,实现服务注册中心,eg:mima-cloud-eurekaEureka客户端,将服务注册到 Eureka,分为服务提供者和服务消费者,eg:mima-cloud-eureka-producer和mima-cloud-eureka-consu…
Watcher详解.接口 在 ZooKeeper 中, 接口类 Watcher 用于表示一个标注你的事件处理器,其定义了事件通知相关的逻辑,包含 KeeperState 和 EventType 两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event) 如果Watcher Watcher 触发条件: 增.删.改 ( 重复修改也会触发,因为他只告诉你变更了,不告诉你变更多少,需要 C 自己去拿) abstract public  vo…
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: <java版gRPC实战>全系列链接 用proto生成代码 服务发布和调用 服务端流 客户端流 双向流 客户端动态获取服务端地址 基于eureka的注册发现 客户端为什么要动态获取服务端地址 本文是<java版gRPC实战>系列的第六篇,前面咱们在开发客户端应用时,所需的服务端地…
服务端如何获取客户端请求IP地址,网上代码一搜一大把.其中比较常见有x-forwarded-for.client-ip等请求头,及remote_addr参数,那么为什么会存在这么多获取方式,以及到底怎样获取才是安全的呢? 一.remote_addr.x-forwarded-for.client-ip是神马? remote_addr指的是当前直接请求的客户端IP地址,它存在于tcp请求体中,是http协议传输时自动添加的,不受请求头header所控制.所以,当客户端与服务器间不存在任何代理时,通过…
新年第一篇博文,接着和大家分享springcloud相关内容:本次主要内容是使用cloud结合zookeeper作为注册中心来搭建服务调用,前面几篇文章有涉及到另外的eureka作为注册中心,有兴趣的朋友会回顾下上几篇文章. springcloud版本说明 docker快速启动一个zookeeper服务 zk-server服务提供者 zk-client服务消费者 启动多个zk-server服务提供者 git源码地址:https://github.com/shenniubuxing3/spring…
目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方面的内容,也有做过一些Demo(包括整理出来的.可供学习使用的简单通信框架).具体可以参见以下博客: http://www.cnblogs.com/xiaozhi_5638/p/4244797.html(清晰易懂TCP通信原理解析) http://www.cnblogs.com/xiaozhi_56…
今天来试着模仿下dubbo实现一个简要的http服务的注册,虽说是模仿不过是很廉价的那种,只是模仿了一点点点...... 先放上demo目录结构: 开头还是把ZooKeeper的一些简要介绍搬过来看看,这样让大家也能多了解点儿: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目,其发展历程无需赘述.在分布式应用中,由于工程师不能很好地使用锁机制,以及…
Android BLE与终端通信(三)--客户端与服务端通信过程以及实现数据通信 前面的终究只是小知识点,上不了台面,也只能算是起到一个科普的作用,而同步到实际的开发上去,今天就来延续前两篇实现蓝牙主从关系的客户端和服务端了,本文相关链接需要去google的API上查看,需要FQ的 Bluetooth Low Energy:http://developer.android.com/guide/topics/connectivity/bluetooth-le.html 但是我们依然没有讲到BLE(…
[转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方面的内容,也有做过一些Demo(包括整理出来的.可供学习使用的简单通信框架).具体可以参见以下博客: http://www.cnblogs.com/xiaozhi_5638/p/4244797.html(清晰…