首页 文章 精选 留言 我的

精选列表

搜索[MSA技术],共10000篇文章
优秀的个人博客,低调大师

java nio之通道和Gather技术

学到这一步,就可以和操作系统的一些IO调用结合起来了。 感觉到设计系统和语言的人是多么的牛X。 能考虑到的细节是多么的复杂! 下一步, file io和socket~~~~ 看书的深度和系统性,还是一篇网上的文章无法比的! 致敬! package com.ronsoft.books.nio.channels; import java.nio.ByteBuffer; import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; import java.nio.channels.Channels; import java.io.IOException; import java.nio.channels.GatheringByteChannel; import java.io.FileOutputStream; import java.util.Random; import java.util.List; import java.util.LinkedList; public class ChannelCopy { private static final String DEMOGRAPHIC = "blahblah.txt"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub /* ReadableByteChannel source = Channels.newChannel(System.in); WritableByteChannel dest = Channels.newChannel(System.out); channelCopy1(source, dest); // channelCopy2(source, dest); source.close(); dest.close(); */ int reps = 10; if (args.length > 0) { reps = Integer.parseInt(args[0]); } FileOutputStream fos = new FileOutputStream(DEMOGRAPHIC); GatheringByteChannel gatherChannel = fos.getChannel(); ByteBuffer []bs = utterBS(reps); while (gatherChannel.write(bs) > 0) { } System.out.println("Mindshare paradigms synergized to " + DEMOGRAPHIC); fos.close(); } private static void channelCopy1(ReadableByteChannel src, WritableByteChannel dest) throws IOException{ ByteBuffer buffer = ByteBuffer.allocate(16 * 1024); while (src.read(buffer) != -1) { buffer.flip(); dest.write(buffer); buffer.compact(); } buffer.flip(); while (buffer.hasRemaining()) { dest.write(buffer); } } private static void channelCopy2(ReadableByteChannel src, WritableByteChannel dest) throws IOException { ByteBuffer buffer = ByteBuffer.allocate(10 * 1024); while (src.read(buffer) != -1) { buffer.flip(); while (buffer.hasRemaining()) { dest.write(buffer); } buffer.clear(); } } private static String []col1 = { "Aggregate", "Enable", "Leverage", "Facilitate", "Synergize", "Repurpose", "Strategize", "Reinvent", "Harness" }; private static String []col2 = { "cross-platform", "best-of-breed", "frictionless", "ubiquitous", "extensible", "compelling", "mission-critical", "collaborative", "integrated" }; private static String [] col3 = { "methodologies", "infomediaries", "platforms", "schemas", "mindshare", "paradigms", "functionalities", "web services", "infrastructures" }; private static String newLine = System.getProperty("line.separator"); @SuppressWarnings({ "unchecked", "rawtypes" }) private static ByteBuffer []utterBS(int howMany) throws Exception { List list = new LinkedList(); for (int i = 0; i < howMany; i++) { list.add(pickRandom(col1, " ")); list.add(pickRandom(col2, " ")); list.add(pickRandom(col3, newLine)); } ByteBuffer []bufs = new ByteBuffer[list.size()]; list.toArray(bufs); return (bufs); } private static Random rand = new Random(); private static ByteBuffer pickRandom(String []strings, String suffix) throws Exception { String string = strings[rand.nextInt(strings.length)]; int total = string.length() + suffix.length(); ByteBuffer buf = ByteBuffer.allocate(total); buf.put(string.getBytes("US-ASCII")); buf.put(suffix.getBytes("US-ASCII")); buf.flip(); return (buf); } }

优秀的个人博客,低调大师

AliOS Things网络连接技术概述

AliOS Things 是 AliOS 家族旗下的、面向 IoT 领域的、轻量级物联网嵌入式操作系统。 AliOS Things 致力于搭建云端一体化 IoT 基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云 Link,可广泛应用在智能家居、智慧城市、新出行等领域。 AliOS Things不仅是一个传统的RTOS,而是一个具有丰富组件的,云端一体的运行在嵌入式MCU上的嵌入式操作系统。它具有丰富的连接组件和能力,主要包括: 自组织网络协议(uMesh) 套接字适配层(SAL) TCP/IP网络协议栈(LwIP) 连接协议(WiFi,BLE, LoRaWAN, GPRS和NB-IoT) 自组织网络(uMesh),套接字适配层(SAL)和TCP/IP网络协议栈(LwIP)主要是功能和使用场景

优秀的个人博客,低调大师

虚拟化技术—docker容器—安装篇

核心概念 1.镜像 是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署。 2. docker容器 镜像类似于操作系统而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作每个容器都是相互隔离的。 3. docker仓库 存放镜像的一个场所仓库分为公开仓库和私有仓库。最大的公开仓库是Docker hubhub.docker.com国内公开仓库http://dockerpool.com/ 一、安装 centos6上安装(6.5之前版本需要升级一下yum update ) yum install -y epel-release yum install -y docker-io 如果是centos7 yum install -y docker 启动docker /etc/init.d/docker start 二、镜像管理 docker pullcentos//从docker.com获取centos镜像如果太慢直接做个加速 先到https://cr.console.aliyun.com/注册一下,登录成功后,在控制台,看左侧,有一个加速器按钮,点开找到自己的专属加速链接,我的是https://u6vpvkfn.mirror.aliyuncs.com 然后vi/etc/sysconfig/docker 最下面增加一行: other_args="--registry-mirror=https://u6vpvkfn.mirror.aliyuncs.com" centos7是:OPTIONS="--registry-mirror=https://u6vpvkfn.mirror.aliyuncs.com" docker images//查看本地都有哪些镜像 docker tag centos syk123//为centos镜像设置标签为syk123再使用docker images查看会多出来一行改行的image id和centos的一样 docker search (image-name)//从docker仓库搜索docker镜像后面是关键词 docker run -t -i centos/bin/bash//用下载到的镜像开启容器-i表示让容器的标准输入打开-t表示分配一个伪终端要把-i -t放到镜像名字前面 当该镜像发生修改后我们可以把该镜像提交重新生成一个新版本进行在本地。 docker ps//查看运行的容器 docker rmi centos//用来删除指定镜像其中后面的参数可以是tag如果是tag时实际上是删除该tag只要该镜像还有其他tag就不会删除该镜像。当后面的参数为镜像ID时则会彻底删除整个镜像连通所有标签一同删除 docker ps -a//查看所有容器包括已经退出的。 三、创建镜像基于已有镜像的容器创建 运行docker run后进入到该容器中我们做一些变更比如安装一些东西然后针对这个容器进行创建新的镜像 docker commit -m "change somth"-a "somebody info"image_id//通过docker images获取id新镜像名字 例如docker commit -m "install httpd" -a "syk" 2c74d574293f centos_net-tools 这个命令有点像svn的提交-m加一些改动信息-a指定作者相关信息2c74d这一串为容器id再后面为新镜像的名字 四、创建镜像基于本地模板导入 模块获取可以直接在网上下载一个模块http://openvz.org/Download/templates/precreated wget https://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz cat centos-6-x86.tar.gz |docker import - centos-6-x86 把现有镜像导出为一个文件 docker save -o syk-centos.tarcentos-6-x86 我们还可以用该文件恢复本地镜像 docker load --input aming-centos.tar或者 docker load < aming-centos.tar docker push image_name//可以把自己的镜像传到dockerhub官方网站 本文转自 sykmiao 51CTO博客,原文链接:http://blog.51cto.com/syklinux/1860204,如需转载请自行联系原作者

优秀的个人博客,低调大师

虚拟化技术—docker容器—Dockerfile篇

什么是Dockerfile? 按照平时,我们都需要先让一个容器跑起来,然后进去搭建制定自己的服务,那有没有更简洁的方法呢?Dockerfile就是为了更方便的制定容器的。 首先先看Dockerfile里的一些定义,这里从网上截了个图,比较形象: 创建目录: 要先把需要的软件包放在同一个目录下 编写Dockerfile,这里要特别提醒,Dockerfile编写需要非常注意空格!!! vimDockerfile 添加: #ThisisMyfirstDockerfile #Version1.0 #Author:syk #Baseimages FROMcentos #MAINTAINER MAINTAINERyongkang.shi #ADD ADDpcre-8.38.tar.gz/usr/local/src ADDnginx-1.8.1.tar.gz/usr/local/src #RUN RUNyuminstall-ywgetgccgcc-c++makeopenssl-devel RUNuseradd-s/sbin/nologin-Mwww #WORKDIR WORKDIR/usr/local/src/nginx-1.8.1 RUN./configure--prefix=/usr/local/nginx--user=www--group=www--with-http_ssl_module--with-http_stub_status_module--with-pcre=/usr/local/src/pcre-8.38&&make&&makeinstall RUNecho"daemonoff;">>/usr/local/nginx/conf/nginx.conf ENVPATH/usr/local/nginx/sbin:$PATH #EXPOSE EXPOSE80 #CMD CMD["nginx"] 运行命令创建容器: dockerbuild-tnginx-file:v2 /opt/docker-file/nginx/ 最后会提示构建成功: docker ps -a查看一下: 本文转自 sykmiao 51CTO博客,原文链接:http://blog.51cto.com/syklinux/1860231,如需转载请自行联系原作者

优秀的个人博客,低调大师

虚拟化技术—docker容器—管理篇

一、我们怎么更方便的进去已经start的容器呢? nsenter:可以通过这个命令进去docker的images里 首先获取一个容器的id: docker inspect --format "``.`State`.`Pid`"centos_with_nettools 获取一个id 10592 nsenter --target10592 --mount --yts --ipc --net 这样就进去了,当然这样很麻烦,所以可以写一个脚本: cat in.sh CNAME=$1 CPID=$(docker inspect --format "``.`State`.`Pid`" $CNAME) nsenter --target $CPID--mount --uts --ipc --net 设置权限: chmod +x in.sh 使用:./in.shcentos_with_nettools 二、查看docker网络 brctlshow 查看docker的网桥 iptables -t nat -L -n 三、容器创建好了,怎么对外提供服务呢? 容器都是独立的,资源隔离的,一个容器最常见的是只跑一个服务,但凡服务都都是有端口的,那么我们就要把容器内的端口映射到本机的端口上,然后对外提供服务 第一种:随机映射 docker run -P -d --name nginx1 nginx 第二种:指定映射 docker run -d -p 91:80 --name nginx2 nginx 四、数据卷 什么是数据卷? 当然是存放数据的,那么我们用来做什么?打个比方,一个网站后端不可能只有一台服务器,那么多台服务器怎么保证一些需要的数据一致呢?这里就要用到数据卷了,一个容器只用来保存数据,其他后台服务器都到这个容器里取数据,这样就可以保证数据一致性了。 先创建一个容器: dockerrun-it--namevolume-test1-hnginx-v/datanginx docker ps -l查看一下: dockerinspect-f"``.`Volumes`"volume-test1查看卷: 挂载: dockerrun-it--namevolume-test2-hnginx1-v/opt:/optcentos 注意:/opt后面不能有/号 dockerrun-it--namevolume-test2-hnginx1-v/opt:/opt:ro centos ro:表示在容器里不能写 这时创建新容器时就可以指定了 新建容器,数据卷从volume-test1上取 dockerrun-it--namevolume-test34--volumes-fromvolume-test1centos 本文转自 sykmiao 51CTO博客,原文链接:http://blog.51cto.com/syklinux/1860219,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册