首页 文章 精选 留言 我的

精选列表

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

微服务网关Zuul在EDAS环境的实践

问题起因 最近参与的一个项目,客户基于EDAS开发的微服务应用,应用间提供的都是Restful接口。 总所周知,EDAS是基于内部HSF接口的分布式服务框架,HSF的特点是服务调用者和服务提供者直接连接,不经过网关层转发,HSF接口无需引入网关层,EDAS会承担服务注册与服务发现功能,服务调用时由HSF-Client根据从configserver推送过来的服务提供方ip,直接发起调用。 但是后端的微服务应用提供Restful接口的话,不可能把每一个微服务所提供的Restful接口都直接暴露给前端应用,这样的话,前端应用需要知道每个微服务的vip、端口、请求path,这么做并不友好。这里需要引入一个网关层,前端应用发起请求到网关,由网关根据请求url智能转发到后端不同的微服务应用处理。 调研过程 调研了相关的产品,有几个备选方案:1)Ngin

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

Intellij idea配置Spark开发环境,统计哈姆雷特词频(2)

idea 新建maven 项目 输入maven坐标 maven 坐标 编辑maven文件 Spark 体系 中间层Spark,即核心模块Spark Core,必须在maven中引用。 编译Spark还要声明java8编译工具。 <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> idea自动加载引用,在窗口左侧Project导航栏-->External Libraries中看到引用org.apache.spark中spark-core_2.11-2.1.0.jar文件。 idea Externel Libraries 注:Spark Streaming是流式计算框架、SparkSQL数据库工具、Mlib机器学习框架、GraphX图计算工具。 Java 8 lambda函数风格的wordCount //定义单词总数累加器、和停用词累加器 Accumulator countTotal = jsc.accumulator(0); Accumulator stopTotal = jsc.accumulator(0); // 文件初始化RDD JavaRDD<String> stopword = jsc.textFile("data/text/stopword.txt"); JavaRDD<String> rdd = jsc.textFile("data/text/Hamlet.txt"); // RDD 转换为List List<String> stopWordList = stopword.collect(); // Broadcast 广播变量,task共享executor的变量 Broadcast<List<String>> broadcastedStopWordSet = jsc.broadcast(stopWordList); rdd.filter(l->l.length()>0) .flatMap(l-> Arrays.asList(l.trim().split(" ")).iterator()) // 将line分割展成词向量,词向量在连接,返回Rdd<String> .map(v->v.replaceAll("['.,:;?!-]", "").toLowerCase()) // 特殊字符处理, Rdd<String> .filter(v->{ boolean isStop = false; countTotal.add(1); if(broadcastedStopWordSet.value().contains(v)){ stopTotal.add(1); isStop = true; } return !isStop; }) //遍历总数计数、停用词计数,过滤停止词, Rdd<String> .mapToPair(v-> new Tuple2<>(v,1)) .reduceByKey((v1,v2)->v1+v2) //统计个数 .mapToPair(p-> new Tuple2<>(p._2,p._1)) .sortByKey(false) //排序 .take(10).forEach(e->{ System.out.println(e._2+":"+e._1); }); 将line分割展成词向量,词向量连接,flatmap返回Rdd<String> 特殊字符处理,返回 Rdd<String> 遍历总数计数、停用词计数,过滤停止词, 返回Rdd<String> Reduce Rdd<String,1>,返回Rdd<String,total> 排序 SortByKey,返回 Rdd<String,total> 后期有更多案例介绍Java 8 lambda风格的RDD开发

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

检查多云数据管理环境中的所有因素

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 随着人们创建和存储数字对象的能力的增强,这些数据的可用性却随着时间的推移而下降。人们希望通过长期数字保存(LTDP)来保持持久价值的数字信息的可访问和可用性,以应对过时的软件和硬件,以及精确呈现内容的这些挑战。 此外,世界各国政府强制实施“云计算优先”政策,以及各行业厂商和用户从云计算解决方案中获得的收益,使得云计算中的长期数字保存(LTDP)技术成为数字图书馆和档案馆可行的考虑因素和具有吸引力的替代选择。通过利用云计算的可扩展性、冗余性、成本效益,以及对数字保存不断变化的需求的适应性,长期数字保存(LTDP)可以从云计算技术中大大受益。 在过去几年中,多种云计算产品的使用已经从“影子IT”实践中有机地发展而来,客户发现他们需要解决其已有问题的解决方案。在这个关键时刻,越来越多的客户对云计算服务的使用有着更好的体验和理解,促使他们探索和实施多云策略。也就是说,重要的是他们需要寻找值得信赖的技术合作伙伴以及专业知识、技术诀窍和解决方案,以确保上述原则得到解决。 多云是超越混合云的云计算IT架构的又一次飞跃。它指的是同时使用多个公共云提供商的公共云和本地私有云的资源,以实现某些业务目标和指标的IT设计,这些目标和指标很难通过企业的内部部署和/或混合云设计实现。这些优势包括:自由选择跨公共云提供商挑选***云服务,数据移动性无需担心供应商锁定,通过跨多个云架构分布的数据集增强数据可用性和持久性,并能够针对不同供应商的每个应用程序使用最合适的云定价方案,从而优化成本。简而言之,这些因素让云计算客户掌握了充分的杠杆作用和控制力,助长了多云增长的势头。 尽管当今企业的大多数数据仍然来自并存储在本地存储解决方案中,但许多行业都出现了用于多云数据管理的用例。例如,在媒体和娱乐公司中,利用对象存储在内部部署私有云中创建内容非常普遍,但是用于内容分发(CDN)的公共云服务或计算代码转换的使用正在增长。在金融服务行业中,对内部存储的需求仍然提供***的安全性、控制和性能,但公共云为场外合规性和长期存档目的(如AWS Glacier和Microsoft的Azure Blob存储归档层)提供了引人注目的解决方案。此外,用于分析的云计算服务(如Amazon QuickSight或Azure机器学习)还提供了其他用于公共云的增值服务。 上面概述的多云优势取决于企业必须遵守的原则。以下是一个简便的清单,可以用于确定企业的云存储选择对于支持其长期数字保存策略的适用程度: 通过标准化的对象和文件界面对所有云平台中的数据访问、控制和安全进行规范化处理,事实上的对象选择是Amazon S3 API,文件选择是NFS和SMB。 确保数据始终保持其开放的云原生格式,并且在任何地方都不具有透明度,因此可以在任何地方访问,并可根据需要自由移动。 透明的数据代理能力,允许数据根据预定义的业务策略自动放置和移动。 跨云体系结构的动态索引和搜索功能,以便可以在任何给定时间发现并采取行动的数据。 最重要的是,遵循管理组织内许多云平台的***实践。 如果组织缺乏成熟性、纪律性或遵守上述原则的能力,那么采用多云将毫无益处。而一旦被锁定到任何供应商或技术中,就很难改变。 如果没有正确实施或没有合理的保障措施,采用多云可能会加剧云客户面临的问题和挑战,如增加数据管理的复杂性和开销,降低数据访问和使用方式的灵活性、控制和跟踪数据放置的位置,以及在多个云上存放不必要的副本而增加成本。 企业在部署多云存储时需要注意一些挑战。由于跨公共云和网关产品的专有存储格式的锁定,真正的混合云存储尚未通过当今的网关和云备份解决方案实现。尽管当前的解决方案可以实现从内部部署到云端的数据移动和分层,但是他们并没有通过允许云服务访问存储在其中的数据来真正利用云计算的力量。相反,这些产品是“单向”的解决方案,迫使应用程序使用网关访问数据,而无论其是在本地部署数据中心还是在云端。由于无法在此数据上使用本地云服务,因此这会损失公共云的关键价值。因此,业界需要一个能从根本上改变混合云存储和数据管理的解决方案,为客户提供本地存储和公共云的全部功能和灵活性。 多云正在成为云计算应用的常态,将成为市场主流。展望未来,企业将需要一种从根本上改变云存储和数据管理的解决方案,为客户提供内部存储和公共云的全部功能和灵活性,以便他们不仅可以从数据中获得***的价值,也获得***的***体验。这种新型多云数据控制器解决方案的兴起将为跨不同云平台的代理和管理信息提供帮助。

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

Nginx在windows环境下的安装与简单配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 一. 下载并安装Nginx 去Nginx官网下载 我这里选取nginx/Windows-1.10.3版本,下载后解压出来即可,解压出来的路径不能含有中文 我解压后将其放置的路径如下 二、开始运行 在当前目录下按住shift+鼠标右键,选择“在此处打开命令窗口”,然后输入start nginx 此时,就可以进入浏览器输入访问地址,http://127.0.0.1/或者http://localhost/即可访问 三、配置文件讲解 核心配置文件就是nginx.conf,该文件位于conf目录下,大部分情况下我们就是修改该文件的配置 该文件的原始配置如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application /octet-stream ; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x .html; location = /50x .html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} } 其中#代表注释 nginx我们最主要的作用是拿来做反向代理和负载均衡,这个我后面会着重讲解。同时它还是一个web服务器,与我们常用的Apache、tomcat、IIS一样,也可以用来托管web服务。 本章先暂时介绍下该配置文件中的几个重要参数,后面会对nginx部署php和Python项目再进行着重讲解,至于java的项目通常是tomcat+nginx同时进行配置,nginx用来做负载均衡和处理静态页。 1、定义Nginx运行的用户和用户组 1 #user nobody; 2、nginx进程数,建议设置为等于CPU总核心数 1 worker_processes 1; 3、全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] 1 2 #error_log logs/error.log notice; #error_log logs/error.log info; 4、进程文件 1 #pid logs/nginx.pid; 5、工作模式与连接数上限:worker_connections是单个后台worker process进程的最大并发链接数,并发总数是 worker_processes 和 worker_connections 的乘积, 即 max_clients = worker_processes * worker_connections 1 2 3 events { worker_connections 1024; } 6、http下的一些配置及其意义 1 2 3 4 5 6 7 8 include mime.types; #文件扩展名与文件类型映射表 default_type application /octet-stream ; #默认文件类型 sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来 输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置 为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常 把这个改成off。 autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。 tcp_nopush on; #防止网络阻塞 tcp_nodelay on; #防止网络阻塞 keepalive_timeout 120; #长连接超时时间,单位是秒 gzip on; #开启gzip压缩输出 7、server虚拟主机的相关配置 我们平时配置各类服务器,配置最多的就是这些地方了 比如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 http{ #虚拟主机1 server{ listen 80; #监听端口,基于IP配置的时候变更此处,比如192.168.1.100:8080; server_name www.xdw.com; #主机域名,实际项目发布的话,填公网上的域名,本地部署的话,可以在C:\Windows\System32\drivers\etc\hosts文件中添加IP和域名的映射 location / { #映射解析,/代表根路径,此处解析还有正则表达式的解析方式,具体请参考http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_core_module.html#location root E: /xdw/0221 ; #工程所在路径 index index.html index.htm; #首页(默认页) } } #虚拟主机2,可以同时配置多个虚拟主机 server{ listen 8080; server_name localhost; location / { root D: /xiangmu/txym_web ; index index.html index.htm; } } } 看到这个虚拟主机的配置,相信配置过tomcat或者Apache的人都很熟悉的感觉。此篇就到此结束,下面还会更新linux下的配置,php和python项目的部署,反向代理和负载均衡,配合tomcat部署java项目。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册